September 14, 2017

Goal of this talk

  • Convince you to consider investing in large scale lab based performance analysis.
  • Dig into some data.

Overall Distribution

Why is consistently interactive so multi-modal?

Objective of this analysis.

  • Find Chrome and Website bugs based on new insight.
  • Understand Page Load performance at scale.
  • Identify weaknesses in our metrics.

Gathering Data

  • Load the Alexa top 10k on Nexus 5's.
  • Simulate 3G network.
  • Both warm & cold Page loads.
  • Reasonably detailed main thread attribution.

Time To Consistently Interactive

Time To Consistently Interactive

Quantiles

Time To Consistently Interactive

Normalized by quantiles

Important Timestamp Deltas

Per Second

What's with the weird dip in warm wall clock time?

Next Steps: Elimate Other

Slice Title: Total self time in ms across top 10k pages
LocalFrameView::performLayout :  77859682.3385
TaskQueueManager::RunTask :  45631790.6605
Document::recalcStyle :  42088368.0356
Document::rebuildLayoutTree :  23380524.8535
LocalFrameView::prePaint :  22698465.596
WebURLLoaderImpl::loadSynchronously :  19509370.842
ProxyMain::BeginMainFrame::commit :  16127438.698

Next Steps: Elimate Other

  • We need some better ways to keep trace event renaming from breaking metrics.
  • Contribute by adding your slices to the user friendly category driver..

Next Steps: Improved Breakdowns

  • blocked_on_network should split out by type of resource.
  • Can script_execute be split out via runtimeCallStats?
  • Filter out 404s - maybe pick a better pageset?
  • ???

Next Steps: Crazy Ideas

  • Label sites by framework.
  • Gather memory data as well.
  • Do the same thing, but for input.